import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import androidx.viewpager2.adapter.FragmentStateAdapter
import com.cszy.yydqbfq.bean.IndexGridBean
import com.cszy.yydqbfq.ui.fragment.CategoryFragment
import com.cszy.yydqbfq.ui.fragment.RecommendFragment



class HomeFragmentPagerAdapter(
    fragmentActivity: FragmentActivity,
    private val tabData: List<IndexGridBean>
) : FragmentStateAdapter(fragmentActivity) {

    // 只缓存 CategoryFragment 实例
    private val categoryFragmentCache = mutableMapOf<Int, CategoryFragment>()

    override fun getItemCount(): Int = tabData.size

    override fun createFragment(position: Int): Fragment {
        // 第一个 tab (推荐) 使用特殊 Fragment，其他使用通用 Fragment
        return if (position == 0) {
            RecommendFragment.newInstance()
        } else {
            // 为其他分类创建通用 Fragment，传递分类名称
            val categoryFragment = CategoryFragment.newInstance(tabData[position].title)
            // 只缓存 CategoryFragment
            categoryFragmentCache[position] = categoryFragment
            categoryFragment
        }
    }

    // 添加获取 CategoryFragment 的方法
    fun getCategoryFragment(position: Int): CategoryFragment? {
        return categoryFragmentCache[position]
    }
}